在介紹完了二元樹,今天就來談談二元樹讀取和儲存的方式。二元樹裏的資料其實不一定是依照大小或從左到右排序的,可能依照輸出的方式不同,結果也會不盡相同。
目前理論上有四種輸出順序:
但實際上也可歸類為兩種分類方式,深度優先搜尋 (Depth-first Search)、廣度優先搜尋 (Breath-first Search),只不過節點輸出的順序改變而已。這兩個搜尋會擇日討論。
以下為圖例。
[1, 2, 4, 7, 8, 5, 3, 6, 9, 10]
[7, 4, 8, 2, 5, 1, 3, 9, 6, 10]
[7, 8, 4, 5, 2, 9, 10, 6, 3, 1]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
那如果是搭配四則運算呢?
[× ÷ + 7 8 5 + 4 - 9 3]
[((7 + 8) ÷ 5) × (4 + 9 - 3)]
[7 8 + 5 ÷ 4 9 3 - + ×]
有關四則運算的部分,可以自己用程式寫寫看。可以搭配之前說過的堆疊(Stack)來實作喔!